<?php
class Fornecedores {
  private $id_fornecedor;
  private $razao_social;
  private $nome_fantasia;
  private $cpf_cnpj;
  
  public function __construct($sFiltro = "", $sOrdem = "id_fornecedor") {
    global $oDB;
    $sSQL = "SELECT id_fornecedor, razao_social, nome_fantasia, cpf_cnpj FROM fornecedores";
    if ($sFiltro) {
      $sSQL .= " WHERE ($sFiltro)";
    }
    if ($sOrdem) {
      $sSQL .= " ORDER BY $sOrdem";
    }
    if (!empty($sFiltro)) {
      $oRes = $oDB->Execute($sSQL);
      if ($oRes == false) {
        trigger_error($oDB->ErrorMsg());
      } else {
        $this->id_fornecedor = $oRes->fields['id_fornecedor'];
        $this->razao_social = $oRes->fields['razao_social'];
        $this->nome_fantasia = $oRes->fields['nome_fantasia'];
        $this->cpf_cnpj = $oRes->fields['cpf_cnpj'];
      }
    }
  }
  
  public function getId_fornecedor() {
    return $this->id_fornecedor;
  }
  public function setId_fornecedor($valor) {
    $this->id_fornecedor = $valor;
  }
  
  public function getRazao_social() {
    return $this->razao_social;
  }
  public function setRazao_social($valor) {
    $this->razao_social = $valor;
  }
  
  public function getNome_fantasia() {
    return $this->nome_fantasia;
  }
  public function setNome_fantasia($valor) {
    $this->nome_fantasia = $valor;
  }
  
  public function getCpf_cnpj() {
    return $this->cpf_cnpj;
  }
  public function setCpf_cnpj($valor) {
    $this->cpf_cnpj = $valor;
  }
  
  public function atualizar() {
    global $oDB;
    $campos = array(
      'razao_social' => $this->razao_social,
      'nome_fantasia' => $this->nome_fantasia,
      'cpf_cnpj' => $this->cpf_cnpj,
    );
    if ($this->id_fornecedor > 0) {
      $oDB->AutoExecute('fornecedores', $campos, 'UPDATE', 'id_fornecedor = '.intval($this->id_fornecedor));
    } else {
      $oDB->AutoExecute('fornecedores', $campos, 'INSERT');
    }
  }
  public function excluir($aIds) {
    global $oDB;
    $sIds = implode(',', $aIds);
    $sSQL = 'DELETE FROM fornecedores WHERE id_fornecedor IN ('. $sIds .')';
    $oRes = $oDB->execute($sSQL);
    if ($oRes != false) {
      return true;
    }
  }
  public static function listar($filtro = "", $sOrdem = "id_fornecedor") {
    global $oDB;
    $lista = array();
    $sSQL = "SELECT id_fornecedor, razao_social, nome_fantasia, cpf_cnpj FROM fornecedores";
    if ($filtro) {
      $sSQL .= " WHERE ($filtro)";
    }
    if ($sOrdem) {
      $sSQL .= " ORDER BY $sOrdem";
    }
    $oRes = $oDB->Execute($sSQL);
    if ($oRes == false) {
      trigger_error($oDB->ErrorMsg());
    } else {
      while (!$oRes->EOF) {
        $linha = new self();
        $linha->id_fornecedor = $oRes->fields['id_fornecedor'];
        $linha->razao_social = $oRes->fields['razao_social'];
        $linha->nome_fantasia = $oRes->fields['nome_fantasia'];
        $linha->cpf_cnpj = $oRes->fields['cpf_cnpj'];
        $lista[] = $linha;
        
        $oRes->MoveNext();
      }
    }
    return $lista;
  }
  
}
?>
